import config from '../../sys/config';
import cacheMemory from '../../storage/cacheMemory';

/**
 * 【同步方法】网络请求通用IP地址头部
 * @param type 处理方式，值域：get-获取、set-设置
 * @param data "set设置"处理下要设置的IP地址头
 * @return 通用接口地址头的字符串
 */
function http(type = 'get', data = '') {
    
    // 初始化返回数据
    let data_return = '';
    // 临时变量名
    let str_name = '$focus_network_http_apiHead';
    
    // 获取处理模式
    if (type == 'get')
    {
        // 读取临时缓存
        let save_short = cacheMemory('get');
        // 缓存有数据执行
        if (save_short && save_short[str_name])
        {
            // 返回值 赋值
            data_return = save_short[str_name];
        }
        // 无数据则进行创建
        else {
            // 获取框架配置文件的http配置信息
            let obj_config_http = config('get').http;
            // 运行环境：开发环境
            if (process.env.NODE_ENV === 'development') { data_return = obj_config_http.development; }
            // 运行环境：生产环境
            else { data_return = obj_config_http.production; }
            // 重新构建要保存的数据
            let obj_newsave = {}; obj_newsave[str_name] = data_return;
            // 重新缓存请求地址头
            cacheMemory('set', obj_newsave);
        }
    }
    
    // 设置处理模式
    else if (type=='set' && typeof(data)=="string" && data.length>0)
    {
        // 重新构建要保存的数据
        let obj_newsave = {}; obj_newsave[str_name] = data;
        // 将传入数据保存到临时缓存
        cacheMemory('set', obj_newsave);
        // 返回成功
        data_return = data;
    }
    
    // 返回结果数据
    return data_return;
}

export default http;